package cn.hh.org.domain;

import cn.hh.basic.domain.BaseDomain;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.List;

/**
 *  部门实体类
 */
@Data // get set toString equals hashCode... 有参构造器
public class Department extends BaseDomain {
    // 部门编号
    private String sn;
    // 部门的名称
    private String name;
    // 部门的路径
    private String dirPath;
    // 部门的状态: 1表示启动   0表示禁用
    private Integer state;
    // 部门经理的ID
    private Long manager_id;
    // 上级部门的ID
    private Long parent_id;
    // 保存上级部门的信息 - 包括部门名称
    private Department parent;
    // 保存部门经理的信息 - 包括名称
    private Employee manager;


    // 用于装当前部门的子部门
    // 部门树最后一级没有数据就不显示
    @JsonInclude(JsonInclude.Include.NON_EMPTY) // 如果最后一级是空的就不显示
    private List<Department> children = new ArrayList<>();
}
